#include "mainscence.h"
#include "ui_mainscence.h"
#include "QPainter"
#include "mypushbutton.h"
#include <QBitmap>
#include <QTimer>
#include <QSound> //多媒体模块下的音效

MainScence::MainScence(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainScence)
{
    ui->setupUi(this);

    //设置主场景

    //设置固定大小
    setFixedSize(320, 588);

    //设置图标
    setWindowIcon(QIcon(":/res/Coin0001.png"));

    //设置标题
    setWindowTitle("翻金币游戏");

    //退出按钮实现
    connect(ui->actionasd, &QAction::triggered, [=](){  //triggered()是一次性的，点击只能存在一种状态。
        this->close();
    });

    //准备开始按钮的音效
    QSound * Sound = new QSound(":/res/TapButtonSound.wav",this);

    //创建开始按钮
    MyPushButton * startBtn = new MyPushButton(":/res/MenuSceneStartButton.png");
    startBtn->setParent(this);
    startBtn->move(this->width() * 0.5 - startBtn->width() * 0.5, this->height() * 0.7);

    //实例化选择关卡场景
    chooseScene = new ChooseLeveScene;

    connect(startBtn, &MyPushButton::clicked, [=](){
       //qDebug()<<"点击了开始";
       Sound->play(); //开始音效

       //弹跳特效
       startBtn->zoom1();
       startBtn->zoom2();

       //监听选择场景的返回按钮
       connect(chooseScene,&ChooseLeveScene::chooseSceneBack,[=](){
           chooseScene->hide(); //将选择关卡场景隐藏掉
           this->show();    //重新显示主场景
       });


       //延时进入到选择关卡的场景
       QTimer::singleShot(500,this,[=](){
           //自身隐藏
           this->hide();
           //显示选择关卡场景
           chooseScene->show();
       });
    });

}

void MainScence::paintEvent(QPaintEvent *)
{
    QPainter painter(this);     //生明画家，要在当前窗口中画画
    QPixmap pix;                //创建一个Qpixmap对象，用于绘图
    pix.load(":/res/PlayLevelSceneBg.png");     //加载图片
    painter.drawPixmap(0,0,this->width(), this->height(),pix);  //画上图片

    //画背景上图标
    pix.load(":/res/Title.png");       //加载图片
    pix = pix.scaled(pix.width() * 0.5, pix.height() * 0.5);    //缩放图片
    painter.drawPixmap(10,30,pix);      //按坐标画图片


}

MainScence::~MainScence()
{
    delete ui;
}
